package com.erp.erp_entitys.warehouse.entity;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;

/**
 * 库存表(Stock)
 *
 * @author lst
 * @since 2020-07-13 07:05:34
 */
public class StockEntity implements Serializable {
    private static final long serialVersionUID = -76274975926761659L;
    /**
    * 主键
    */
    private Integer id;

    /**
     * 库存父id
     */
    private Integer parentId;

    /**
     * 入库单号
     */
    private String inStoreBillNo;
    /**
    * 批次号
    */
    private String lotNo;
    /**
    * 产品编码
    */
    private String productCode;
    /**
    * 规格编码
    */
    private String specificationCode;
    /**
    * 规格说明
    */
    private String specificationExplanation;
    /**
     * 仓库名称
     */
    private String warehouseName;
    /**
    * 仓库编码
    */
    private String warehouseCode;
    /**
    * 合同号
    */
    private String contractNo;
    /**
    * 合同类型(1:内销 2:外销 3:待定)
    */
    private Integer contractType;
    /**
    * 实际数量
    */
    private BigDecimal realQuantity;
    /**
    * 实际可用数量
    */
    private BigDecimal realAvailableQuantity;
    /**
     * 可申请数量
     */
    private BigDecimal canApplyQuantity;
    /**
    * 调拨申请数量
    */
    private BigDecimal transferApplyQuantity;
    /**
    * 出库申请数量
    */
    private BigDecimal outWarehouseApply;
    /**
    * 供应商编码
    */
    private String supplierCode;
    /**
    * 供应商名称
    */
    private String supplierName;
    /**
    * 客户货号
    */
    private String clientProductNo;
    /**
    * 产品单位
    */
    private String productUnit;
    /**
    * 产品中文名称
    */
    private String productCname;
    /**
    * 产品英文名称
    */
    private String productEname;
    /**
    * 产品中文描述
    */
    private String productCdesc;
    /**
    * 产品英文描述
    */
    private String productEdesc;
    /**
    * 颜色
    */
    private String color;
    /**
    * 业务员
    */
    private String salesman;
    /**
    * 业务员编码
    */
    private String salesmanCode;

    /**
     * 成本金额
     */
    private BigDecimal costAmount;
    /**
    * 产品单价(初始来源于备货入库中的 入库成本)
    */
    private BigDecimal productUnitPrice;
    /**
    * 备注
    */
    private String memo;

    /**
     * 创建日期
     */
    private Date createDate;

    /**
     * 入库日期
     */
    private Date inStoreDate;

    /**
     * 分摊费用单价
     */
    private BigDecimal shareCostPrice;

    /**
     * 采购单号
     */
    private String purchaseNo;

    /**
     * 采购id
     */
    private Integer purchaseId;

    /**
     * 托盘入数
     */
    private BigDecimal trayNumber;

    /**
     * 总托盘
     */
    private BigDecimal totalTray;

    /**
     * 海运费
     */
    private BigDecimal shippingFee;

    /**
     * 运输代理费
     */
    private BigDecimal transferAgencyFee;

    /**
     * 美国仓储操作费
     */
    private BigDecimal storageOperationFee;

    /**
     * 关税
     */
    private BigDecimal tariff;

    /**
     * 海外仓库租金费
     */
    private BigDecimal warehouseRentalFee;

    /**
     * 毛重
     */
    private BigDecimal grossWeight;

    /**
     * 净重
     */
    private BigDecimal netWeight;

    /**
     * 体积
     */
    private BigDecimal bulk;

    /**
     * 产品类型(1:成品 2:配件 3:料件)
     */
    private Integer productType;

    /**
     * 是否有效(0:无效 1:有效)
     */
    private Integer valid;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getParentId() {
        return parentId;
    }

    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }

    public String getInStoreBillNo() {
        return inStoreBillNo;
    }

    public void setInStoreBillNo(String inStoreBillNo) {
        this.inStoreBillNo = inStoreBillNo;
    }

    public String getLotNo() {
        return lotNo;
    }

    public void setLotNo(String lotNo) {
        this.lotNo = lotNo;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode;
    }

    public String getSpecificationCode() {
        return specificationCode;
    }

    public void setSpecificationCode(String specificationCode) {
        this.specificationCode = specificationCode;
    }

    public String getSpecificationExplanation() {
        return specificationExplanation;
    }

    public void setSpecificationExplanation(String specificationExplanation) {
        this.specificationExplanation = specificationExplanation;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public String getContractNo() {
        return contractNo;
    }

    public void setContractNo(String contractNo) {
        this.contractNo = contractNo;
    }

    public Integer getContractType() {
        return contractType;
    }

    public void setContractType(Integer contractType) {
        this.contractType = contractType;
    }

    public BigDecimal getRealQuantity() {
        return realQuantity;
    }

    public void setRealQuantity(BigDecimal realQuantity) {
        this.realQuantity = realQuantity;
    }

    public BigDecimal getRealAvailableQuantity() {
        return realAvailableQuantity;
    }

    public void setRealAvailableQuantity(BigDecimal realAvailableQuantity) {
        this.realAvailableQuantity = realAvailableQuantity;
    }

    public BigDecimal getCanApplyQuantity() {
        return canApplyQuantity;
    }

    public void setCanApplyQuantity(BigDecimal canApplyQuantity) {
        this.canApplyQuantity = canApplyQuantity;
    }

    public BigDecimal getTransferApplyQuantity() {
        return transferApplyQuantity;
    }

    public void setTransferApplyQuantity(BigDecimal transferApplyQuantity) {
        this.transferApplyQuantity = transferApplyQuantity;
    }

    public BigDecimal getOutWarehouseApply() {
        return outWarehouseApply;
    }

    public void setOutWarehouseApply(BigDecimal outWarehouseApply) {
        this.outWarehouseApply = outWarehouseApply;
    }

    public String getSupplierCode() {
        return supplierCode;
    }

    public void setSupplierCode(String supplierCode) {
        this.supplierCode = supplierCode;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getClientProductNo() {
        return clientProductNo;
    }

    public void setClientProductNo(String clientProductNo) {
        this.clientProductNo = clientProductNo;
    }

    public String getProductUnit() {
        return productUnit;
    }

    public void setProductUnit(String productUnit) {
        this.productUnit = productUnit;
    }

    public String getProductCname() {
        return productCname;
    }

    public void setProductCname(String productCname) {
        this.productCname = productCname;
    }

    public String getProductEname() {
        return productEname;
    }

    public void setProductEname(String productEname) {
        this.productEname = productEname;
    }

    public String getProductCdesc() {
        return productCdesc;
    }

    public void setProductCdesc(String productCdesc) {
        this.productCdesc = productCdesc;
    }

    public String getProductEdesc() {
        return productEdesc;
    }

    public void setProductEdesc(String productEdesc) {
        this.productEdesc = productEdesc;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getSalesman() {
        return salesman;
    }

    public void setSalesman(String salesman) {
        this.salesman = salesman;
    }

    public String getSalesmanCode() {
        return salesmanCode;
    }

    public void setSalesmanCode(String salesmanCode) {
        this.salesmanCode = salesmanCode;
    }

    public BigDecimal getCostAmount() {
        return costAmount;
    }

    public void setCostAmount(BigDecimal costAmount) {
        this.costAmount = costAmount;
    }

    public BigDecimal getProductUnitPrice() {
        return productUnitPrice;
    }

    public void setProductUnitPrice(BigDecimal productUnitPrice) {
        this.productUnitPrice = productUnitPrice;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getInStoreDate() {
        return inStoreDate;
    }

    public void setInStoreDate(Date inStoreDate) {
        this.inStoreDate = inStoreDate;
    }

    public BigDecimal getShareCostPrice() {
        return shareCostPrice;
    }

    public void setShareCostPrice(BigDecimal shareCostPrice) {
        this.shareCostPrice = shareCostPrice;
    }

    public String getPurchaseNo() {
        return purchaseNo;
    }

    public void setPurchaseNo(String purchaseNo) {
        this.purchaseNo = purchaseNo;
    }

    public Integer getPurchaseId() {
        return purchaseId;
    }

    public void setPurchaseId(Integer purchaseId) {
        this.purchaseId = purchaseId;
    }

    public BigDecimal getTrayNumber() {
        return trayNumber;
    }

    public void setTrayNumber(BigDecimal trayNumber) {
        this.trayNumber = trayNumber;
    }

    public BigDecimal getTotalTray() {
        return totalTray;
    }

    public void setTotalTray(BigDecimal totalTray) {
        this.totalTray = totalTray;
    }

    public Integer getProductType() {
        return productType;
    }

    public void setProductType(Integer productType) {
        this.productType = productType;
    }

    public Integer getValid() {
        return valid;
    }

    public void setValid(Integer valid) {
        this.valid = valid;
    }

    public BigDecimal getShippingFee() {
        return shippingFee;
    }

    public void setShippingFee(BigDecimal shippingFee) {
        this.shippingFee = shippingFee;
    }

    public BigDecimal getTransferAgencyFee() {
        return transferAgencyFee;
    }

    public void setTransferAgencyFee(BigDecimal transferAgencyFee) {
        this.transferAgencyFee = transferAgencyFee;
    }

    public BigDecimal getStorageOperationFee() {
        return storageOperationFee;
    }

    public void setStorageOperationFee(BigDecimal storageOperationFee) {
        this.storageOperationFee = storageOperationFee;
    }

    public BigDecimal getTariff() {
        return tariff;
    }

    public void setTariff(BigDecimal tariff) {
        this.tariff = tariff;
    }

    public BigDecimal getWarehouseRentalFee() {
        return warehouseRentalFee;
    }

    public void setWarehouseRentalFee(BigDecimal warehouseRentalFee) {
        this.warehouseRentalFee = warehouseRentalFee;
    }

    public BigDecimal getGrossWeight() {
        return grossWeight;
    }

    public void setGrossWeight(BigDecimal grossWeight) {
        this.grossWeight = grossWeight;
    }

    public BigDecimal getNetWeight() {
        return netWeight;
    }

    public void setNetWeight(BigDecimal netWeight) {
        this.netWeight = netWeight;
    }

    public BigDecimal getBulk() {
        return bulk;
    }

    public void setBulk(BigDecimal bulk) {
        this.bulk = bulk;
    }

    /**
     * 重写toString
     */
    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("StockEntity").append('[')
                .append("id=")
                .append(id)
                .append(",parentId=")
                .append(parentId)
                .append(",inStoreBillNo=")
                .append(inStoreBillNo)
                .append(",lotNo=")
                .append(lotNo)
                .append(",productCode=")
                .append(productCode)
                .append(",specificationCode=")
                .append(specificationCode)
                .append(",specificationExplanation=")
                .append(specificationExplanation)
                .append(",warehouseName=")
                .append(warehouseName)
                .append(",warehouseCode=")
                .append(warehouseCode)
                .append(",contractNo=")
                .append(contractNo)
                .append(",contractType=")
                .append(contractType)
                .append(",realQuantity=")
                .append(realQuantity)
                .append(",realAvailableQuantity=")
                .append(realAvailableQuantity)
                .append(",canApplyQuantity=")
                .append(canApplyQuantity)
                .append(",transferApplyQuantity=")
                .append(transferApplyQuantity)
                .append(",outWarehouseApply=")
                .append(outWarehouseApply)
                .append(",supplierCode=")
                .append(supplierCode)
                .append(",supplierName=")
                .append(supplierName)
                .append(",clientProductNo=")
                .append(clientProductNo)
                .append(",productUnit=")
                .append(productUnit)
                .append(",productCname=")
                .append(productCname)
                .append(",productEname=")
                .append(productEname)
                .append(",productCdesc=")
                .append(productCdesc)
                .append(",productEdesc=")
                .append(productEdesc)
                .append(",color=")
                .append(color)
                .append(",salesman=")
                .append(salesman)
                .append(",salesmanCode=")
                .append(salesmanCode)
                .append(",costAmount=")
                .append(costAmount)
                .append(",productUnitPrice=")
                .append(productUnitPrice)
                .append(",memo=")
                .append(memo)
                .append(",createDate=")
                .append(createDate)
                .append(",inStoreDate=")
                .append(inStoreDate)
                .append(",shareCostPrice=")
                .append(shareCostPrice)
                .append(",purchaseNo=")
                .append(purchaseNo)
                .append(",purchaseId=")
                .append(purchaseId)
                .append(",trayNumber=")
                .append(trayNumber)
                .append(",totalTray=")
                .append(totalTray)
                .append(",shippingFee=")
                .append(shippingFee)
                .append(",transferAgencyFee=")
                .append(transferAgencyFee)
                .append(",storageOperationFee=")
                .append(storageOperationFee)
                .append(",tariff=")
                .append(tariff)
                .append(",warehouseRentalFee=")
                .append(warehouseRentalFee)
                .append(",grossWeight=")
                .append(grossWeight)
                .append(",netWeight=")
                .append(netWeight)
                .append(",bulk=")
                .append(bulk)
                .append(",productType=")
                .append(productType)
                .append(",valid=")
                .append(valid)
                .append(']');
        return sb.toString();
    }
}